package com.toolbox.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * <p>
 * Description：
 * </p>
 *
 * @author Mango
 * @version v1.0.0
 * @date 2023-12-09 13:37
 * @see com.toolbox.dto
 */
@Data
@ToString
@Accessors(chain = true)
@ApiModel("菜单权限——展示数据")
public class InfraMenuDTO implements Serializable {

    private static final long serialVersionUID = 4735758801518036702L;

    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID", position = 100)
    private Long id;

    /**
     * 父ID
     */
    @ApiModelProperty(value = "父ID", position = 100)
    private Long parentId;

    /**
     * 中文名称
     */
    @ApiModelProperty(value = "中文名称", position = 100)
    private String nameCn;

    /**
     * 英文名称
     */
    @ApiModelProperty(value = "英文名称", position = 100)
    private String nameEn;

    /**
     * 路由 path 属性值 若为空则按照url路径处理
     */
    @ApiModelProperty(value = "路由 path 属性值 若为空则按照url路径处理", position = 100)
    private String path;

    /**
     * 路由 name 属性值 若为空则按照url路径处理
     */
    @ApiModelProperty(value = "路由 name 属性值 若为空则按照url路径处理", position = 100)
    private String name;

    /**
     * 菜单路由 或 URL
     */
    @ApiModelProperty(value = "菜单路由 或 URL", position = 100)
    private String url;

    /**
     * 授权(多个用逗号分隔，如：user:list,user:create)
     */
    @ApiModelProperty(value = "授权(多个用逗号分隔，如：user:list,user:create)", position = 100)
    private String permission;

    /**
     * 类型：0-目录 1-菜单 2-按钮 3-iframe 4-外链
     */
    @ApiModelProperty(value = "类型：0-目录 1-菜单 2-按钮 3-iframe 4-外链", position = 100)
    private Integer type;

    /**
     * 图标
     */
    @ApiModelProperty(value = "图标", position = 100)
    private String icon;

    /**
     * 是否在菜单显示：0-否 1-是
     */
    @ApiModelProperty(value = "是否在菜单显示：0-否 1-是", position = 100)
    private Integer isShow;

    /**
     * 是否显示在tab页签：0-否 1-是
     */
    @ApiModelProperty(value = "是否显示在tab页签：0-否 1-是", position = 100)
    private Integer tab;

    /**
     * 是否支持tab页签多开：0-否 1-是
     */
    @ApiModelProperty(value = "是否支持tab页签多开：0-否 1-是", position = 100)
    private Integer multiple;

    /**
     * 是否支持缓存：0-否 1-是
     */
    @ApiModelProperty(value = "是否支持缓存：0-否 1-是", position = 100)
    private Integer keepalive;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序", position = 100)
    private Integer sort;

}
